---
title: SpringCloud微服务
---
微服务是一种软件架构风格，它将单个应用程序拆分为一组小型、独立的服务，每个服务可以独立部署、扩展和维护，通过轻量级的通信机制互相协助，提高应用程序的灵活性和可扩展性。

微服务架构有以下这几个天然的优势：

1. 快速迭代+快速回滚。
2. 资源利用率大大提高（差异化的资源利用）。
3. 大幅降低协作成本。
4. 高可用，相比于牵一发而动全身的单体应用来说，可以通过很多手段堆微服务施加个性化的保护措施，比如弹性机房水位调拨、流量整形、熔断降级。

除了上述优势外，微服务也有很多问题需要我们去解决。比如：

1. 集群环境下的服务治疗
2. 数据一致性
3. 高并发场景下的服务容错
4. ......



:::tip 单体应用的缺点

1. 无法达到快速迭代的目的，所有人的代码都提交到一个分支，一旦 merge 代码就要面临各种冲突；每一次提交代码都要执行回归测试；一旦出错，必须全部回滚。
2. 单机的性能是有限的。
3. 单点故障。

:::

## 微服务学习路径


学习微服务技术简单来说就是需要掌握”三大功能，两大特性“：

![image-20230401205810162](https://img.wkq.pub/pic/image-20230401205810162.png)

三大功能是指微服务组件的功能维度，两大特性是指每个微服务组件上的高可用性和高扩展性。

**从微服务组件的功能维度来讲，服务间通信是最基础的功能特性。**接下来需要考虑的就是如何构建服务容错能力，提高服务的稳定性了。最后需要从全局的角度构建一些分布式支持特性。



除了功能维度以外，每个微服务组件还需要注意的就是高可用性和高可扩展性了。

## Spring Cloud

微服务是一种架构风格，而 Spring Cloud 是一个构建微服务架构的开发工具集合，被称为微服务全家桶。

SpringCloud 是 Spring Boot 的扩展， 构建于 SpringBoot 之上，提供了一系列工具来支持构建分布式系统的微服务架构。

Spring Cloud 组件库分为两个系列，Spring Cloud Netflix 和 Spring Cloud Alibaba 组件库。目前，Netflex 已经销声匿迹。

Spring Cloud Alibaba 是 Spring Cloud 和 Alibaba 中间件集成的解决方案，是基于 Spring Cloud 实现的。它提供了一套开箱即用的分布式微服务框架，支持服务注册和发现、配置管理、消息驱动等功能，并且基于阿里巴巴中间件实现了更多的功能，如分布式事务、分布式锁、消息队列等。

Spring Cloud Alibaba 的核心组件包括：

1. Nacos：服务注册和发现、配置中心，替代 Eureka 和 Config。
2. Sentinel：流量控制、熔断降级，替代 Hystrix。
3. RocketMQ：分布式消息队列，替代 Kafka。
4. Seata：分布式事务，替代 Spring Cloud 体系中的分布式事务解决方案。

此外，Spring Cloud Alibaba 还包括了其他一些组件，如 Dubbo、ACM（阿里云配置管理）、Turbine 等。Spring Cloud Alibaba 的出现丰富了 Spring Cloud 的生态系统，使得基于 Spring Cloud 构建的微服务应用更加强大和灵活

import DocCardList from '@theme/DocCardList';


<DocCardList />
